#ifndef w2p_auto_wifi_header
#define w2p_auto_wifi_header
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/event_groups.h"
#include "freertos/queue.h"
#include "freertos/semphr.h"
#include "driver/uart.h"
#include "esp_log.h"
#include <string.h>
#include <inttypes.h>
#include "nvs_flash.h"
#include "esp_wifi.h"
#include "esp_event.h"
#include "esp_err.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/event_groups.h"
#include "esp_log.h"
#include "esp_system.h"
#include "esp_netif.h"
#include "esp_smartconfig.h"
#include "esp_mac.h"
#include "w2p_utils.h"

#include <string.h>
#include <sys/param.h>
#include "lwip/err.h"
#include "lwip/sockets.h"
#include "lwip/sys.h"
#include <lwip/netdb.h>
#include <time.h>
#include "cJSON.h"
#include "esp_timer.h"


#include "esp_bt.h"
#include "esp_bt_main.h"
#include "esp_gap_ble_api.h"
#include "esp_bt_device.h"
#include <strings.h>

#include "app_vars.h"

#include "w2p_ble_hid.h"


void _AutoWifi_event_handler(void* arg, esp_event_base_t event_base,
                                int32_t event_id, void* event_data);

void _AutoWifi_initialise_wifi(void);

void _AutoWifi_smartconfig_task(void * parm);

void auto_wifi_app_main(void);

void auto_notify_online_multicast_task(void *pvParameters);
void auto_tcp_server_control_task(void *pvParameters);


/***cmd handler begin***/
//-- start-hid
void _handle_start_hid(char * cmdType,cJSON *cmdJson,char * retCode);
void _handle_hid_touch(char * cmdType,cJSON *cmdJson,char * retCode);
void _handle_hid_release(char * cmdType,cJSON *cmdJson,char * retCode);
void _handle_hid_tap(char * cmdType,cJSON *cmdJson,char * retCode);
/***cmd handler end***/
#endif